梦想不会自己发光,真正闪耀的是那个为梦狂奔的你。献给知行的孩子们!(Eric.He著)
本教程将从C/C++语言的起源、创始人、核心特点、发展历程到第一个Hello World程序,全面介绍C++语言的基础认知,帮助你建立对这门经典编程语言的核心理解。
C语言和C++语言是编程领域中极具影响力的两门编程语言,二者一脉相承又各有侧重,是系统开发、底层编程、高性能应用开发的核心工具。
C语言是一门面向过程的通用编程语言,由贝尔实验室在20世纪70年代初开发。它以简洁、高效、可移植性强著称,是操作系统、编译器、嵌入式系统等底层开发的首选语言,被誉为“编程语言的基石”。C语言仅提供基础的语法结构和数据类型,强调程序员对内存和流程的直接控制,兼具高级语言的易用性和低级语言的高效性。
C++语言是在C语言基础上扩展而来的多范式编程语言,既兼容C语言的全部特性(面向过程),又引入了面向对象编程(OOP)、泛型编程、函数式编程等现代编程范式。C++保留了C语言的高效性和底层控制能力,同时增加了封装、继承、多态等面向对象特性,使其既能开发底层系统软件,也能构建大型复杂的应用程序(如游戏引擎、数据库、工业软件等)。
核心关系:C++是C语言的超集(Superset),绝大多数合法的C语言代码可以直接在C++编译器中编译运行,C++完全兼容C语言的语法和功能。
C语言由丹尼斯·里奇(Dennis MacAlistair Ritchie,1941-2011)于1972年在贝尔实验室(Bell Labs)开发,他也被称为“C语言之父”。
C++语言由本贾尼·斯特劳斯特卢普(Bjarne Stroustrup,1950-至今)于1983年在贝尔实验室开发,他被称为“C++语言之父”。
C++语言融合了C语言的高效性和现代编程的灵活性,核心特点如下:
C++的核心优势:在“高性能”和“高抽象”之间取得了极佳的平衡,既能做底层硬件控制,也能构建大型复杂应用。
C++自1983年命名以来,经历了多次标准更新,逐步完善和扩展功能,核心版本演进如下:
| 版本/标准 | 发布年份 | 核心特性 |
|---|---|---|
| C++98 | 1998 | 第一个官方C++标准,确立面向对象核心特性(类、继承、多态),引入STL; |
| C++03 | 2003 | 对C++98的bug修复和小幅优化,无重大新特性; |
| C++11 | 2011 | 里程碑式更新,引入智能指针、lambda表达式、范围for循环、移动语义、auto关键字等; |
| C++14 | 2014 | 对C++11的补充,优化lambda表达式、constexpr等特性; |
| C++17 | 2017 | 引入结构化绑定、std::optional、文件系统库、并行算法等; |
| C++20 | 2020 | 引入概念(Concepts)、协程、模块(Modules)、范围(Ranges)等重大特性; |
| C++23 | 2023 | 完善C++20特性,新增字符串格式化、静态操作符等便捷功能; |
发展趋势:C++标准始终围绕“保持高效性”和“提升开发效率”两大核心,逐步吸收现代编程语言的优秀特性,同时避免引入性能开销。
Hello World是学习任何编程语言的第一个程序,用于验证开发环境和基础语法,以下是C++和C语言版本的对比实现:
// C++ Hello World 程序
#include <iostream> // 引入输入输出流头文件
// 主函数:程序入口点
int main() {
// 输出Hello World到控制台
std::cout << "Hello World!" << std::endl;
// 返回0表示程序正常结束
return 0;
}
// C Hello World 程序
#include <stdio.h> // 引入标准输入输出头文件
// 主函数:程序入口点
int main() {
// 输出Hello World到控制台
printf("Hello World!\n");
// 返回0表示程序正常结束
return 0;
}
#include:预处理指令,引入头文件(C++的main():程序的入口函数,所有C/C++程序都从main函数开始执行,返回值为int类型;std::cout:C++的标准输出流对象,<<是输出运算符,std::endl表示换行并刷新缓冲区;printf():C语言的标准输出函数,\n是换行符;return 0:表示程序正常执行完毕,返回0给操作系统(非0通常表示程序异常)。编译运行说明:
1. C++程序:使用g++编译器(g++ hello.cpp -o hello),运行./hello(Linux)或hello.exe(Windows);
2. C程序:使用gcc编译器(gcc hello.c -o hello),运行方式同上。
C++语言兼具底层控制能力和高级抽象特性,是编程学习中承上启下的重要语言,掌握其基础认知是后续深入学习的关键。